導(dǎo)讀:微信二次開(kāi)發(fā)有哪些細(xì)則,您知道嗎?接下來(lái)就為您介紹下。一.準(zhǔn)備工作1)申請(qǐng)微信服務(wù)號(hào),進(jìn)行微信認(rèn)證;2)成為開(kāi)發(fā)者:申請(qǐng)成功后,從網(wǎng)頁(yè)上登錄微信公眾平臺(tái),點(diǎn)擊“開(kāi)發(fā)者中心”,輸入“
發(fā)表日期:2020-03-02
文章編輯:興田科技
瀏覽次數(shù):10134
標(biāo)簽:
微信二次開(kāi)發(fā)有哪些細(xì)則,您知道嗎?接下來(lái)就為您介紹下。
一.準(zhǔn)備工作1)申請(qǐng)微信服務(wù)號(hào),進(jìn)行微信認(rèn)證;2)成為開(kāi)發(fā)者:申請(qǐng)成功后,從網(wǎng)頁(yè)上登錄微信公眾平臺(tái),點(diǎn)擊“開(kāi)發(fā)者中心”,輸入“接收微信平臺(tái)轉(zhuǎn)發(fā)消息的統(tǒng)一URL”和“TOKEN”提交成為開(kāi)發(fā)者。(這兩個(gè)參數(shù)后面還可以修改)3)獲取AppId和AppSecret:成為開(kāi)發(fā)者后,在“開(kāi)發(fā)者中心中”頁(yè)面,可獲取AppId和AppSecret兩個(gè)參數(shù)。
二.項(xiàng)目搭建及配置2.1.創(chuàng)建一個(gè)web項(xiàng)目,還需將wadata-weixin.jar包添加到項(xiàng)目中。Wadata-weixin.jar下載地址:
http://pan.baidu.com/s/1kT27Ovt提取碼:6eb1 wadata-weixin.jar包提供主要兩個(gè)功能:a)微信轉(zhuǎn)發(fā)請(qǐng)求處理器WeiXinServlet,主要做以下事件:1接收微信轉(zhuǎn)發(fā)的消息;2對(duì)消息進(jìn)行封裝成對(duì)象WeiXinMessage;3把消息對(duì)象WeiXinMessage轉(zhuǎn)遞給微信菜單處理器WeiXinprocessor進(jìn)行業(yè)務(wù)邏輯處理,微信菜單處理器返回微信響應(yīng)對(duì)象WeiXinpacket 4把微信響應(yīng)對(duì)象WeiXinpacket解析成xml消息,并響應(yīng)微信請(qǐng)求。b)微信接口統(tǒng)一調(diào)用類WeiXinInterface,目前提供以下功能:(后面會(huì)按需要增加)1獲取全局Access_Token 2創(chuàng)建微信菜單3查詢微信菜單4刪除微信菜單
2.2.在web.xml中配置用于接收微信消息的Servlet WeiXinServlet com.wadata.weixin.base.servlet.WeiXinServlet pROCESSOR_pACKAGE com.wadata.weixin.mmp.processor WeiXinServlet/weixin參數(shù)說(shuō)明:1)pROCESSOR_pACKAGE:微信公眾號(hào)功能菜單的處理器的Java包路徑。2.3.application.properties:將準(zhǔn)備工作中輸入的TOKEN和開(kāi)發(fā)都中心頁(yè)面獲取到的AppId和AppSecrets三個(gè)參數(shù)配置到properties中。
三.微信菜單管理微信菜單接口中要求第三方將自己的菜單數(shù)據(jù)以JSON格式提交。因此先要在項(xiàng)目創(chuàng)建一個(gè)JSON格式的文件,把自定義菜單配置好。按以下示例配置:
說(shuō)明:button數(shù)組中存放的是一級(jí)菜單,多存放三個(gè)一級(jí)菜單;sub_button數(shù)組中存放的是二級(jí)菜單,多存放的5個(gè)二級(jí)菜單;支持兩種菜單類型click:點(diǎn)擊菜單將在微信中直接顯示消息;view:點(diǎn)擊菜單將打開(kāi)微信網(wǎng)頁(yè);wadata-weixin.jar包中WeiXinInterface類提供微信菜單的創(chuàng)建,查詢,刪除接口。1、創(chuàng)建實(shí)例:WeiXinInterface weiXinInterface=new WeiXinInterface();
2、調(diào)用獲取ACCESS_TOKEN接口(此TOKEN的有效時(shí)間為7200秒,也即兩個(gè)小時(shí))WeiXinAccessToken weixinAccessToken=weiXinInterface.token("client_credential",Application.getWeixin_app_id(),Application.getWeixin_app_secret());String accessToken=weixinAccessToken.getAccess_token();
參數(shù)說(shuō)明:個(gè)參數(shù):固定值client_credential第二個(gè)參數(shù):application.properties配置文件中的AppId第三個(gè)參數(shù):application.properties配置文件中的AppSecrets
微信菜單創(chuàng)建:
3、調(diào)用菜單創(chuàng)建接口weiXinInterface.menuCreate(accessToken,menuJson);參數(shù)說(shuō)明:個(gè)參數(shù):第2步中獲取到的ACCESS_TOKEN,如果時(shí)間超過(guò)2個(gè)小時(shí),則需要重新進(jìn)行第2步操作獲取ACCESS_TOKEN第二個(gè)參數(shù):自定義的菜單JSON文件的字符串返回值:true表示創(chuàng)建成功,否則創(chuàng)建失敗,失敗原因可通過(guò)日志查看。
微信菜單查詢:
4、調(diào)用菜單查詢接口weiXinInterface.menuQuery(accessToken);參數(shù)說(shuō)明:個(gè)參數(shù):第2步中獲取到的ACCESS_TOKEN,如果時(shí)間超過(guò)2個(gè)小時(shí),則需要重新進(jìn)行第2步操作獲取ACCESS_TOKEN返回值:菜單的JSON格式字符串
微信菜單刪除
5、調(diào)用菜單刪除接口weiXinInterface.menuDelete(accessToken);參數(shù)說(shuō)明:個(gè)參數(shù):第2步中獲取到的ACCESS_TOKEN,如果時(shí)間超過(guò)2個(gè)小時(shí),則需要重新進(jìn)行第2步操作獲取ACCESS_TOKEN返回值:true表示刪除成功,否則刪除失敗,失敗原因可通過(guò)日志查看。
微信菜單修改
6、先修改菜單的JSON文件
7、調(diào)用菜單刪除接口,刪除原來(lái)創(chuàng)建的菜單
8、調(diào)用菜單創(chuàng)建接口,創(chuàng)建新的菜單
四、click類型菜單開(kāi)發(fā)在自定菜單JSON文件中,click類型菜單需要配置一個(gè)與菜單對(duì)應(yīng)的的key。您需要在“項(xiàng)目搭建及配置”一步中的pROCESSOR_pACKAGE參數(shù)指定包中創(chuàng)建一個(gè)實(shí)現(xiàn)了WeiXinprocessor接口的類,并用注解processor("菜單的key值")來(lái)標(biāo)注在該類。示例:/***微信菜單-投訴建議*/processor("V3001_COMpLAIN")public class Complainprocessor implements WeiXinprocessor{Override public WeiXinpacket process(WeiXinMessage message){//菜單事件響應(yīng)return WeiXinpacketHelper.buildTextpacket(message,MessageFormat.format(Application.getComplain(),Application.getSystem_domain(),message.getFromUserName()));}}WeiXinprocessor接口說(shuō)明:該接口中只有一個(gè)方法:public WeiXinpacket process(WeiXinMessage message);入?yún)ⅲ何⑿畔⒌姆庋b對(duì)象,出參:微信響應(yīng)對(duì)象,WeiXinServlet會(huì)自動(dòng)把接收到的xml消息封裝成WeiXinMessage對(duì)象,并傳遞給菜單處理器WeiXinprocessor,WeiXinprocessor處理完業(yè)務(wù)后需要把結(jié)果封裝成WeiXinpacket對(duì)象返回。WeiXinprocessor菜單處理器中,如果需要獲取微信用戶的基本信息,則需要調(diào)用獲取用戶基本信息接口,ACCESS_TOKEN參數(shù)可調(diào)用微信菜單管理中的第2步來(lái)獲取,OpENID參數(shù)可從WeiXinMessage對(duì)象中獲取。
文本消息封裝示例:/***組裝文本響應(yīng)包*/public static WeiXinpacket buildTextpacket(WeiXinMessage message,String content){WeiXinpacket packet=new WeiXinpacket();packet.setFromUserName(message.getToUserName());packet.setToUserName(message.getFromUserName());packet.setMsgType(WeiXinMsgType.TEXT.getValue());packet.setCreateTime(Long.toString(new Date().getTime()));packet.setContent(content);return packet;}說(shuō)明:WeiXinMessage message為接收到的消息封裝對(duì)象String content為要返回的消息字符串
圖文消息封裝示例:/***組裝新聞響應(yīng)包*/public static WeiXinpacket buildNewspacket(WeiXinMessage message,Listitems){WeiXinNewspacket packet=new WeiXinNewspacket();packet.setToUserName(message.getFromUserName());packet.setFromUserName(message.getToUserName());packet.setCreateTime(Long.toString(new Date().getTime()));packet.setMsgType(WeiXinMsgType.NEWS.getValue());packet.setArticleCount(Integer.toString(items.size()));packet.setItems(items);return packet;}說(shuō)明:WeiXinMessage message為接收到的消息封裝對(duì)象。Listitems為要返回的圖文對(duì)象列表,列表中的圖文對(duì)象多為10個(gè),否則返回不成功。所以您需要先將圖文信息封裝成WeiXinItem對(duì)象。
五、view類型菜單開(kāi)發(fā)View類型菜單,沒(méi)有的key,只有對(duì)應(yīng)的菜單url。點(diǎn)擊view類型菜單,微信會(huì)在自帶的瀏覽器中打開(kāi)菜單的url鏈接。微信網(wǎng)頁(yè)要適應(yīng)手機(jī)的屏幕大小,需要做Wap網(wǎng)頁(yè),也就是在網(wǎng)頁(yè)的標(biāo)簽中添加以下代碼:如果進(jìn)入到微信菜單頁(yè)面時(shí),需要是哪個(gè)用戶進(jìn)來(lái)的話,就需要調(diào)用
OAuth2.0網(wǎng)頁(yè)授權(quán)接口來(lái)獲取用戶的基本信息了。
六、微信消息分組群發(fā)由于微信群發(fā)接口有次數(shù)限制,因此需要把關(guān)注者先分組,再按組來(lái)群發(fā)消息。以下為群發(fā)接口的調(diào)用說(shuō)明:
1、該接口暫時(shí)僅提供給已微信認(rèn)證的服務(wù)號(hào)
2、雖然開(kāi)發(fā)者使用高級(jí)群發(fā)接口的每日調(diào)用限制為100次,但是用戶每月只能接收4條,請(qǐng)小心測(cè)試
3、無(wú)論在公眾平臺(tái)網(wǎng)站上,還是使用接口群發(fā),用戶每月只能接收4條群發(fā)消息,多于4條的群發(fā)將對(duì)該用戶發(fā)送失敗
4、具備微信支付權(quán)限的公眾號(hào),在使用高級(jí)群發(fā)接口上傳、群發(fā)圖文消息類型時(shí),可使用
更多新聞
2023
大連網(wǎng)站建設(shè)公司: 為您定制專業(yè)的網(wǎng)站設(shè)計(jì)與開(kāi)發(fā)方案大連網(wǎng)站建設(shè)公司: 為您定制專業(yè)的網(wǎng)站設(shè)計(jì)與開(kāi)發(fā)...
View details
2019
在品牌網(wǎng)站設(shè)計(jì)行業(yè)混了這么多年,占用了這個(gè)行業(yè)太多的資源,自然多少得為這個(gè)行業(yè)做點(diǎn)什么,為特別貢獻(xiàn)出來(lái)幾個(gè)詞,以表寸心:A、目的B、方法 C、與時(shí)俱進(jìn)找到網(wǎng)站設(shè)計(jì)的目的才有可
View details
2020
如果評(píng)選這三年的幾個(gè)流行的核心關(guān)鍵詞,一定少不了:轉(zhuǎn)型。在這個(gè)突變、巨變的時(shí)代里,每個(gè)人、每個(gè)企業(yè)都面臨著巨大的機(jī)遇與挑戰(zhàn)。 個(gè)人要學(xué)**,要改變,企業(yè)要學(xué)**,要轉(zhuǎn)型。轉(zhuǎn)型到
View details
2023
為什么需要網(wǎng)站建設(shè)?在數(shù)字化時(shí)代,互聯(lián)網(wǎng)已經(jīng)成為商業(yè)發(fā)展的重要驅(qū)動(dòng)力。。擁有一個(gè)精心設(shè)計(jì)和優(yōu)化的網(wǎng)站...
View details